(function($, window, document) {

	// 用于做数据对比
	// 1、包含两个图：柱状图和折线图
	// 2、联动：两个图根据条件变化同时刷新
	// 3、数据格式：数据，索引0为柱状图数据，所以1为折线图数据
	// 4、数据格式说明：都是由left/right数据组成图数据，其中left数据为x坐标，right为数据填充

	$.fn.kpiSummaryPieChart = function(options) {
		var o = $.extend({}, {
			chart1 : {
				text : undefined,
				subtext : undefined,
				option : undefined,
				echart : undefined
			},
			chart2 : {

				text : undefined,
				subtext : undefined,
				option : undefined,
				echart : undefined
			},
			countLabel : "",
			colors : [ '#C1232B', '#B5C334', '#FCCE10', '#E87C25', '#27727B', '#FE8463', '#9BCA63', '#FAD860', '#F3A43B', '#60C0DD', '#D7504B', '#C6E579', '#F4E001', '#F0805A', '#26C0C0' ]
		}, options);

		var self = this, $element = $(this), _create = function() {

			_initChart1(self, o);
			_initChart2(self, o);
			$("#" + o.countLabel).text(o.name);

		}, _initChart1 = function(self, o) {
			// 初始化图表1--柱状图
			o.chart1.option = {
				title : {
					text : o.chart1.text,
					subtext : o.chart1.subtext
				},
				tooltip : {
					trigger : 'item'
				},
				legend : {
					orient : 'vertical',
					x : 'left',
					data : []
				},
				toolbox : {
					show : true,
					feature : {
						mark : {
							show : true
						},
						dataView : {
							show : true,
							readOnly : false
						},
						magicType : {
							show : true,
							type : [ 'pie', 'funnel' ],
							option : {
								funnel : {
									x : '25%',
									width : '50%',
									funnelAlign : 'left'
								}
							}
						},
						restore : {
							show : true
						},
						saveAsImage : {
							show : true
						}
					}
				},
				calculable : true,
				series : [ {
					type : 'pie',
					radius : '55%',
					center : [ '50%', '60%' ],
					itemStyle : {
						normal : {
							color : function(params) {
								return o.colors[params.dataIndex]
							},
							label : {
								show : true,
								position : 'top',
								formatter : '{b}\n{c}'
							}
						}
					},
					data : [ {} ]

				} ]
			};

			o.chart1.echart = echarts.init(document.getElementById($element.attr("id") + "_chart1"));

			o.chart1.echart.on(echarts.config.EVENT.CLICK, function(param) {
				openKpiDataView(param, false);
			});

			o.chart1.echart.setOption(o.chart1.option, true);

		}, _initChart2 = function(self, o) {
			o.chart2.option = {
				title : {
					text : o.chart2.text,
					subtext : o.chart2.subtext
				},
				tooltip : {
					trigger : 'axis'
				},
				legend : {
					data : [ "" ]
				},
				toolbox : {
					show : true,
					feature : {
						mark : {
							show : true
						},
						dataView : {
							show : true,
							readOnly : false
						},
						magicType : {
							show : true,
							type : [ 'line', 'bar' ]
						},
						restore : {
							show : true
						},
						saveAsImage : {
							show : true
						}
					}
				},
				calculable : true,
				xAxis : [ {
					type : 'category',
					data : [ '' ]

				} ],
				yAxis : [ {
					type : 'value'
				} ],
				series : [ {
					name : "",
					type : 'line',
					data : [ "" ]

				} ]
			};

			o.chart2.echart = echarts.init(document.getElementById($element.attr("id") + "_chart2"));
			o.chart2.echart.setOption(o.chart2.option, true);
		}, $result = {

			loadData : function(url) {
				// 重新载入数据
				// self.chart1.xAxis.data = d[0].leftObject;
				// self.chart1.series[0].data = d[0].rightObject;

				$.getJSON("kpi/data/getData1?q" + url, function(option) {

					o.chart1.echart.showLoading();
					o.chart1.echart.clear();
					o.chart1.echart.setOption(o.chart1.option);
					o.chart1.echart.setOption(option, false);

					o.chart1.echart.hideLoading();
					var d = option.series[0].data, count = 0;
					for ( var i = 0; i < d.length; i++) {
						count += d[i].value;

					}
					$("#" + o.countLabel).text(o.name + "：" + count);

				});

				$.getJSON("kpi/data/getData2?q" + url, function(option) {
					o.chart2.echart.showLoading();
					o.chart2.echart.clear();
					o.chart2.echart.setOption(o.chart2.option);
					o.chart2.echart.setOption(option, false);

					o.chart2.echart.hideLoading();

				});

			},
			reload : function(d, date) {
				// 刷新：根据所载入的数据刷新界面显示（组装数据）
				// 如果图表有多个，需要按设定交互规则联动
			},
			restore : function() {
				// 重置为原始状态

				o.chart1.restore();
				o.chart1.restore();
			},
			dispose : function() {

				o.chart1.echart.dispose();
				o.chart2.echart.dispose();
			},
			create : function() {

				return self;
			}
		}
		_create(o);
		return $result;

	}

})(jQuery, this, document);